HTTP progressive download is an improved mode of HTTP file download, and enables a client to download and play at the same time, instead of playing after completing downloading the whole file. An implementation principle is to fragment media content, and one (or a group of) content fragment(s) can be independently decoded by the client. In this way, the client may decode and play after receiving one (or a group of) content fragment(s), and meanwhile, the client may also receive a next (or a next group of) content fragment(s).
In one implementation solution of the HTTP progressive download based on an Internet Protocol (IP) Multimedia Subsystem (IMS), an Adapter HTTP Proxy is introduced between a Service Control Function (SCF) and an HTTP server. The Adapter HTTP Proxy supports a Session Initiation Protocol (SIP) and an HTTP. The Adapter HTTP Proxy has an HTTP interface connected to an SIP interface of the SCF, to an HTTP interface of the HTTP server, and to the client directly.
However, the HTTP progressive download still has the following defects. The progressive download supports operations such as Backward Seek for parts of content that are already downloaded locally. However, for parts of content that are not downloaded, operations such as Fast Forward and Forward Seek are not supported. Therefore, based on the HTTP progressive download, an enhanced streaming content transmission mode based on HTTP is developed, which is referred to as HTTP Streaming. Enhanced functions may include: management and maintenance of play control, converting a play request based on time to a request for specific content fragments; and bit rate adaptation based on known information such as bandwidth.
At present, the enhancement of the HTTP Streaming is implemented by different solutions. The enhancement may be implemented by enhancing a server, or implemented by enhancing a client. Moreover, in specific application, the server and the client may query whether the other party supports the HTTP Streaming, for example, adding a “Pragma” header in an HTTP message to carry an extended instruction defined by a 3rd Generation Partnership Project (3GPP) to query whether the other party supports 3GPP HTTP Streaming. The instruction may be “3gpp-http-streaming”. In a returned message, if a value is true or 1, the instruction represents that the other party supports the HTTP Streaming.
The inventor finds that the prior art has at least the following problems. The above solution can only determine whether the other party supports the HTTP Streaming, but the following situations may exist. The enhanced server can support both the common client and the enhanced client, and the enhanced client can support both the common server and the enhanced server. In this situation, when the enhanced server and the enhanced client interact with each other, it is possible to cause service chaos during media transmission.